Amazon CloudSearchの日本語対応サジェスト機能で「もしかして」を試す
サジェスト(Suggesters)とは
YoutubeやAmazonショッピングサイトで一部のキーワードを入力すると候補が挙がってきて選ぶことができます。これがサジェスト機能です。CloudSearchには標準でこの機能が付いていますので試してみました。
Youtube
Amazonショッピング
サジェストの指定
設定の仕方は簡単です。ドメインの設定画面で、サジェストの追加をします。
検索してみる
サジェスト指定しましたので検索してみましょう。部分文字列を入力します。すると、候補が現れました!
日本語のサジェスト
日本語で検索キーワードを入力する際、ひらがなやカタカナだったり、半角や全角だったり、ローマ字だったりと、様々な入れ方があるかと思います。そんなときに活躍するのが日本語に対応したサジェストです。CloudSearchではイイ感じに対応してくれています
ひらがなで入力
カタカタで入力
半角ローマ字で入力
全角ローマ字で入力
かな漢字変換中
もしかして(FuzzyMatching)
Googleで検索をしていると、もしかして◎◎?と入力間違い等を正してくれることがあります。非常にありがたい機能です。CloudSearchも同じことができます。やってみましょう。サジェストの設定画面でFuzzy Matchingの項目があります。デフォルトではnoneです。Lowにすると1文字間違いを指摘してくれます。Highにすると2文字間違いまで指摘してくれます。ためしにHighにしてみました。
たしかに2文字間違いまで考えて候補を挙げてくれましたね。
サジェストのソート(SortExpression)
サジェストのデフォルトでソートが指定されていませんのでマッチした順番に表示されていきます。ここでソートの順番を指定することができます。例えば、以下はデフォルト設定で検索した場合です。
次に、サジェストのソート部分をageにしてみます。これで年齢順に出てきます。
適応した後の検索結果です。確かにage順になっていました。
まとめ
サジェストの順番を工夫することで、より利用者が選びやすくする候補を列挙することができますね。例えば、人気度や評価点などのあるフィールドの値が高いドキュメント上位候補にするなどです。ソート順の計算には式や関数を用いることができますので色々やってみてください。ひとつ注意点としては、_socreは使えません。_scoreは検索結果のスコアを表すのですが、サジェストは検索前なのでスコアが出ないということかな。_scoreが使えるのは検索結果のソートとなります。